package com.dyna.foundation.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

@TableName(value = "sys_notify_message", autoResultMap = true)
@Data
@ApiModel(value = "站内信消息", description = "站内信消息表实体类")
public class SysNotifyMessage {
 
    @ApiModelProperty(value = "用户ID", example = "1")
    @TableId(type = IdType.AUTO)
    private Long id;
 
    @ApiModelProperty(value = "用户id", required = true, example = "1001")
    private Long userId;
 
    @ApiModelProperty(value = "用户类型", required = true, example = "1", notes = "1:普通用户 2:管理员用户")
    private Integer userType;
 
    @ApiModelProperty(value = "模版编号", required = true, example = "2001")
    private Long templateId;
 
    @ApiModelProperty(value = "模板编码", required = true, example = "NOTIFY_001")
    private String templateCode;
 
    @ApiModelProperty(value = "模版发送人名称", required = true, example = "系统管理员")
    private String templateNickname;
 
    @ApiModelProperty(value = "模版内容", required = true, example = "您有一条新的系统通知")
    private String templateContent;
 
    @ApiModelProperty(value = "模版类型", required = true, example = "1", notes = "1:系统通知 2:业务提醒")
    private Integer templateType;
 
    @ApiModelProperty(value = "模版参数", required = true, example = "{\"userName\":\"张三\",\"amount\":\"100\"}")
    private String templateParams;
 
    @ApiModelProperty(value = "是否已读", required = true, example = "false")
    private Boolean readStatus;
 
    @ApiModelProperty(value = "阅读时间", example = "2023-12-01 10:30:00")
    private LocalDateTime readTime;
 
    @ApiModelProperty(value = "创建者", example = "admin")
    private String creator;
 
    @ApiModelProperty(value = "创建时间", example = "2023-12-01 10:00:00")
    private LocalDateTime createTime;
 
    @ApiModelProperty(value = "更新者", example = "admin")
    private String updater;
 
    @ApiModelProperty(value = "更新时间", example = "2023-12-01 10:30:00")
    private LocalDateTime updateTime;
 
    @ApiModelProperty(value = "是否删除", example = "false")
    private Boolean deleted;
 
    @ApiModelProperty(value = "租户编号", example = "1")
    private Long tenantId;
}